package com.example.transvipm;

import java.util.ArrayList;
import java.util.HashMap;

import com.example.Objetos.ObjZi;
import com.example.dbclass.DBHelper;

import android.os.Bundle;
import android.os.Vibrator;
import android.provider.BaseColumns;
import android.app.Activity;
import android.content.Context;
import android.database.sqlite.SQLiteDatabaseLockedException;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnTouchListener;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class Zi extends Activity {
	private ListView lista;
	private DBHelper dbzi;
	private TextView num;
	private String Numero;
	private ImageButton v_menu;
	private Vibrator vib;
	private int Estado;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.zi);
		dbzi = new DBHelper(getApplicationContext());

		num = (TextView) findViewById(R.id.numero_movil);
		Bundle Datos = getIntent().getExtras();
		Numero = Datos.getString("Numero");
		Estado = Datos.getInt("Zi_est");
		num.setText(Numero);
		
		vib = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
		v_menu = (ImageButton) findViewById(R.id.Volver_menu);

		lista = (ListView) findViewById(R.id.listazi);
		
		Log.i("estado", ""+Estado);
		
		if(Estado == 1 ||
				Numero.equals("9")||
				Numero.equals("801")||
				Numero.equals("802")||
				Numero.equals("803")||
				Numero.equals("804")||
				Numero.equals("805")||
				Numero.equals("806")||
				Numero.equals("807")||
				Numero.equals("808")||
				Numero.equals("809")||
				Numero.equals("810")||
				Numero.equals("811")||
				Numero.equals("812")||
				Numero.equals("813")||
				Numero.equals("814")||
				Numero.equals("815")||
				Numero.equals("816"))
		{
			String[] from = new String[] { "numero", "movil", "nombre", "entrada", "kilometros" };
			int[] to = new int[] { R.id.numero, R.id.movil, R.id.nombre, R.id.entrada, R.id.kilometros };
			ArrayList<ObjZi> zi =new ArrayList<ObjZi>();
			try{
			
			zi = dbzi.ObtenerZi();
			
			}catch(SQLiteDatabaseLockedException e)
			{
				 Toast.makeText(Zi.this, "Error al Realizar la Consulta, Intente Nuevamente",
			                Toast.LENGTH_LONG).show();
			}
			ArrayList<HashMap<String, String>> l1 = new ArrayList<HashMap<String, String>>();
			for (ObjZi i : zi) {

				HashMap<String, String> h1 = new HashMap<String, String>();
				h1.put(BaseColumns._ID, String.valueOf(i.getId()));
				h1.put(from[0], String.valueOf(i.getLlegada()));
				h1.put(from[1], String.valueOf(i.getMovil()));
				h1.put(from[2], i.getName());
				h1.put(from[3], i.getEntrada());
				h1.put(from[4], String.valueOf(i.getKm()));
				l1.add(h1);
			}
			SimpleAdapter listadapter = new SimpleAdapter(this, l1, R.layout.row,
					from, to) {
				@Override
				public View getView(int position, View convertView, ViewGroup parent) {
					

					if (convertView == null) {
						// This a new view we inflate the new layout
						LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
						convertView = inflater.inflate(R.layout.row, parent, false);
					}

					TextView movil = (TextView) convertView.findViewById(R.id.movil);
					TextView numero = (TextView) convertView.findViewById(R.id.numero);
					TextView nombre = (TextView) convertView.findViewById(R.id.nombre);
					TextView entrada = (TextView) convertView.findViewById(R.id.entrada);
					TextView km = (TextView) convertView.findViewById(R.id.kilometros);
					final View row = super.getView(position, convertView, parent);

					if (position < 5) {
						String mov =numero.getText().toString();
						mov = "  "+mov;
						numero.setText(mov);

						if (movil.getText().toString().equals(Numero)) {
							
							movil.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							numero.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							nombre.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							entrada.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							km.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							row.setBackgroundColor(getResources().getColor(
									R.color.Blanco));
						} else {
						
							movil.setTextColor(getResources().getColor(R.color.Blanco));
							numero.setTextColor(getResources().getColor(R.color.Blanco));
							nombre.setTextColor(getResources().getColor(R.color.Blanco));
							entrada.setTextColor(getResources().getColor(R.color.Blanco));
							km.setTextColor(getResources().getColor(R.color.Blanco));
							row.setBackgroundColor(getResources().getColor(
									R.color.Rojo_zi));
						}
					}
					if (position >= 5 && position < 9)
					{
						String mov = numero.getText().toString();
						mov = "  "+mov;
						numero.setText(mov);
					}
					
					if (position >= 5 && position < 10) {
						if (movil.getText().toString().equals(Numero)) {
							movil.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							numero.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							nombre.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							entrada.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							km.setTextColor(getResources().getColor(R.color.Azul_Transvip));
							row.setBackgroundColor(getResources().getColor(
									R.color.Blanco));
						} else {
							
							movil.setTextColor(getResources().getColor(R.color.Blanco));
							numero.setTextColor(getResources().getColor(R.color.Blanco));
							nombre.setTextColor(getResources().getColor(R.color.Blanco));
							entrada.setTextColor(getResources().getColor(R.color.Blanco));
							km.setTextColor(getResources().getColor(R.color.Blanco));
							row.setBackgroundColor(getResources().getColor(
									R.color.Amarillo_zi));
						}
					} else {
						if (position % 2 == 0 && position >= 10) {
							if (movil.getText().toString().equals(Numero)) {
								movil.setTextColor(getResources().getColor(
										R.color.Azul_Transvip));
								numero.setTextColor(getResources().getColor(R.color.Azul_Transvip));
								nombre.setTextColor(getResources().getColor(R.color.Azul_Transvip));
								entrada.setTextColor(getResources().getColor(R.color.Azul_Transvip));
								km.setTextColor(getResources().getColor(R.color.Azul_Transvip));
								row.setBackgroundColor(getResources().getColor(
										R.color.Blanco));
							} else {
								movil.setTextColor(getResources().getColor(R.color.Blanco));
								numero.setTextColor(getResources().getColor(R.color.Blanco));
								nombre.setTextColor(getResources().getColor(R.color.Blanco));
								entrada.setTextColor(getResources().getColor(R.color.Blanco));
								km.setTextColor(getResources().getColor(R.color.Blanco));
								row.setBackgroundColor(getResources().getColor(
										R.color.Otro_azul_tv));
							}
						}
						if (position % 2 == 1 && position >= 10) {

							if (movil.getText().toString().equals(Numero)) {
								movil.setTextColor(getResources().getColor(
										R.color.Azul_Transvip));
								numero.setTextColor(getResources().getColor(R.color.Azul_Transvip));
								nombre.setTextColor(getResources().getColor(R.color.Azul_Transvip));
								entrada.setTextColor(getResources().getColor(R.color.Azul_Transvip));
								km.setTextColor(getResources().getColor(R.color.Azul_Transvip));
								row.setBackgroundColor(getResources().getColor(
										R.color.Blanco));
							} else {
								movil.setTextColor(getResources().getColor(R.color.Blanco));
								numero.setTextColor(getResources().getColor(R.color.Blanco));
								nombre.setTextColor(getResources().getColor(R.color.Blanco));
								entrada.setTextColor(getResources().getColor(R.color.Blanco));
								km.setTextColor(getResources().getColor(R.color.Blanco));
								row.setBackgroundColor(getResources().getColor(
										R.color.Azul_Transvip));
							}
						}
					}

					return row;
				}
			};
			lista.setAdapter(listadapter);
			
		}else
		{
			Toast.makeText(Zi.this,
					"Zona iluminada no disponible por el momento. \n Su movil no se encuentra en ella",
					Toast.LENGTH_LONG).show();
			finish();
		}
		

		

		v_menu.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				vib.vibrate(300);
				onBackPressed();
			}
		});

		v_menu.setOnTouchListener(new OnTouchListener() {

			@Override
			public boolean onTouch(View v, MotionEvent event) {
				// TODO Auto-generated method stub
				if (event.getAction() == MotionEvent.ACTION_DOWN) {

					v_menu.setImageResource(R.drawable.menu_pressed);

				} else if (event.getAction() == MotionEvent.ACTION_UP) {
					v_menu.setImageResource(R.drawable.menu);

				}

				return false;
			}
		});
	}


	public void onBackPressed() {
		super.onBackPressed();
	};

}
